package com.wh.wisdomsite.xbox.us.service;

import com.baomidou.mybatisplus.service.IService;
import com.wh.wisdomsite.xbox.us.entity.Company;
import org.json.JSONArray;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 公司service
 * @author 刘旭
 * @version V1.0
 * @Package com.wh.wisdomsite.xbox.us.service
 * @date 2018年08月06日 22:39
 * @Copyright 企业版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2018
 */
public abstract interface ICompanyService extends IService<Company> {


    /**
     * 构建公司分层数据
     * @param companyList
     * @return
     */
    List<Company> getMenuListForSerch(List<Company> companyList);

    /**
     * 获取公司tree
     * @param allCompanyList
     * @param isAdmin
     * @return
     */
    JSONArray toTreeCompany(List<Company> allCompanyList,Boolean isAdmin) throws Exception;

    /**
     * 获取企业编码
     * @param companyList
     * @param parentId
     * @return
     */
    String getCompCode(List<Company> companyList,Integer parentId);

    /**
     * 获取完整信息的company
     * @param id
     * @return
     */
    Map<String, Object> getMapById(Serializable id);

    /**
     * 保存公司信息
     * @param company
     */
    void saveCompany(Company company,String compCode) throws Exception;

    /**
     * 获取所有子id
     * @param id
     * @return
     */
    String getChildCompIds(Integer id);


    /**
     * 验证公司名称是否已经存在
     * @param companyName
     * @param oldCompanyName
     * @return
     */
    boolean companyNameIsExists(String companyName, String oldCompanyName);

}
